package cn.bsuc.crm.service;

import cn.bsuc.crm.dto.LoginFormDTO;
import cn.bsuc.crm.entity.User;
import cn.bsuc.crm.util.Result;
import cn.bsuc.crm.vo.UserVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;

public interface UserService extends IService<User> {

    /**
     * 登录
     *
     * @param loginFormDTO
     * @return
     */
    Result login(LoginFormDTO loginFormDTO);

    /**
     * 修改用户密码
     *
     * @param request
     * @return
     */
    Result updateUserPassword(String password,HttpServletRequest request);

    //保存用户id及角色
    int saveUser(User user, Integer[] roleIds);

    //用户的多字段查询
    Page<User> selectByParams(User user, Integer pageNo, Integer pageSize);

    //用户查询分页
    Page<User> selectAllUser(Integer pageNo, Integer pageSize);

    //通过用户id查其角色
    UserVO selectAllUserRole(Integer userId);

    //删除一个用户及角色
    int deleteUserAndRole(Integer userId);

    //批量删除用户及角色
    int deleteSomeUser(Integer[] userId);


}
